IF mouserequest THEN DeleteIORequest(mouserequest)
IF lport THEN deletePort(lport)
IF open_dev THEN CloseDevice(game_io_msg)
IF game_io_msg THEN deleteExtIO(game_io_msg)
IF game_msg_port THEN deletePort(game_msg_port)
IF open_devm THEN CloseDevice(game_io_msgm)
IF game_io_msgm THEN deleteExtIO(game_io_msgm)
IF game_msg_portm THEN deletePort(game_msg_portm)
IF sample THEN FreeMem(sample, 12760)
IF samplec THEN FreeMem(samplec, 3900)
IF sampled THEN FreeMem(sampled, 3121)
IF samplei THEN FreeMem(samplei, 9536)
IF open_devau THEN cleanupaudio()
IF open_devau THEN CloseDevice(audioio)
IF audioio THEN DeleteIORequest(audioio)
IF audiomp THEN deletePort(audiomp)
IF exception
SELECT exception
CASE "MEM" ; request('out of memory',0,'')
CASE TEM ; request('out of memory',0,'')
CASE "^C"; request('User ***Break',0,'')
CASE ERR_DEV; request('could not open gameport device, unit:1',0,'')
CASE ERR_DEV2; request('could not open gameport device, unit:0',0,'')
CASE ERR_DEV3; request('could not open/allocate the audio device',0,'')
CASE ERR_DEVTI; request('could not open timer device, UNIT_MICROHZ',0,'')
CASE ERR_DEVIN; request('could not open input device, unit:0',0,'')
CASE ERR_IO; request('could not create gameport I/O',0,'')
CASE ERR_TIIO; request('could not create timer I/O',0,'')
CASE ERR_INIO; request('could not create input I/O',0,'')
CASE ERR_PORT; request('could not create gameport port',0,'')
CASE ERR_ACPORT; request('could not create LightSpeed.Active port',0,'')
CASE ERR_TIPORT; request('could not create LightSpeed.Timer port',0,'')
CASE ERR_INPORT; request('could not create LightSpeed.Input port',0,'')
CASE ERR_SCREEN; request('could not create a screen',0,'')
CASE ERR_AUDIO; request('audio prob',0,'')
CASE ERR_WINDOW; request('could not create a window',0,'')
CASE ERR_GAD; request('could not create the gadgets',0,'')
CASE ERR_VIS; request('could not get the visual info',0,'')
CASE ERR_ACTIVE; request('LightSpeed2 already active',0,'')
CASE ERR_LIB; request('could not open Gadtools Library V.37',0,'')
CASE ERR_KICK; REPEAT ; kickversion:=kickversion-1 ; UNTIL KickVersion(kickversion)=TRUE ; WriteF('\nLightSpeed2 needs at least Kickstart version 37 to run:\nyou have Kickstart version \d\n\nMaybe its time to upgrade :-)\n\n',kickversion) ; WriteF('Error: returncode 236\n') ; return:=236
CASE 18766; request('Error Loading Data Files\n\n (File Read Protected?)',0,'')
CASE "OPEN"; StringF(errmessage,'could not open file \s', IF exceptioninfo THEN exceptioninfo ELSE '') ; request(errmessage,0,'')
mywin:=OpenW(154, 126,141,97,IDCMP_MENUPICK OR IDCMP_VANILLAKEY OR IDCMP_REFRESHWINDOW OR BUTTONIDCMP OR IDCMP_CLOSEWINDOW OR IDCMP_GADGETDOWN OR IDCMP_GADGETUP, WFLG_NEWLOOKMENUS OR WFLG_CLOSEGADGET OR WFLG_ACTIVATE, 'Options', screen, $F, glist, NIL)
SetTopaz(8)
menu1:=[NIL, 0, 0, 90, 10,
ITEMTEXT OR COMMSEQ OR ITEMENABLED OR HIGHCOMP, 0,
mywin2:=OpenW(17,85,282,97,IDCMP_VANILLAKEY OR IDCMP_REFRESHWINDOW OR BUTTONIDCMP OR IDCMP_GADGETDOWN OR IDCMP_GADGETUP OR SLIDERIDCMP, WFLG_ACTIVATE OR WFLG_DRAGBAR, 'Game Prefs', screen, $F, glist2, NIL)
Line(266,69,273,69,1)
Colour(1)
TextF(8,53,'CPU Turning:')
Gt_RefreshWindow(mywin2, NIL)
SetTopaz(8)
process_window_events2(mywin2, my_gads2)
EXCEPT DO
IF mywin2 THEN CloseW(mywin2)
FreeGadgets(glist2)
ReThrow()
unghostgadgets()
stupid:=sliderb_level
ENDPROC
PROC createAllGadgets2(glistptr:PTR TO LONG, vi, topborder,
mywin3:=OpenW(0,26,320,100,STRINGIDCMP OR IDCMP_VANILLAKEY OR IDCMP_REFRESHWINDOW OR IDCMP_GADGETDOWN OR IDCMP_GADGETUP, WFLG_ACTIVATE OR WFLG_DRAGBAR, 'Player Control', screen, $F, glist3, NIL)
SetTopaz(8)
process_window_events3(mywin3, my_gads3)
EXCEPT DO
IF mywin3 THEN CloseW(mywin3)
FreeGadgets(glist3)
ReThrow()
unghostgadgets()
ENDPROC
PROC createAllGadgets3(glistptr:PTR TO LONG, vi, topborder,
IF (play1control=play2control) OR (play1control=play3control) OR (play1control=play4control) OR (play2control=play3control) OR (play4control=play2control) OR (play3control=play4control) THEN noterminate3:=5 ELSE noterminate3:=0
ENDPROC
PROC handleVanillaKey3(win, code, my_gads:PTR TO LONG)
SELECT "z" OF code
CASE "o", "O"
play1control:=play1control+1
IF play1control=4 THEN play1control:=0
IF play1control=0 THEN Gt_SetGadgetAttrsA(ccycle,win,NIL,[GA_DISABLED, FALSE, GTCY_ACTIVE, 0])
IF play1control=1 THEN Gt_SetGadgetAttrsA(ccycle,win,NIL,[GA_DISABLED, FALSE, GTCY_ACTIVE, 1])
IF play1control=2 THEN Gt_SetGadgetAttrsA(ccycle,win,NIL,[GA_DISABLED, FALSE, GTCY_ACTIVE, 2])
IF play1control=3 THEN Gt_SetGadgetAttrsA(ccycle,win,NIL,[GA_DISABLED, FALSE, GTCY_ACTIVE, 3])
IF (play1control=play2control) OR (play1control=play2control) OR (play1control=play3control) OR (play1control=play4control) OR (play2control=play3control) OR (play4control=play2control) OR (play3control=play4control) THEN noterminate3:=5 ELSE noterminate3:=0
CASE "r", "R"
play2control:=play2control+1
IF play2control=4 THEN play2control:=0
IF play2control=0 THEN Gt_SetGadgetAttrsA(ccycle2,win,NIL,[GA_DISABLED, FALSE, GTCY_ACTIVE, 0])
IF play2control=1 THEN Gt_SetGadgetAttrsA(ccycle2,win,NIL,[GA_DISABLED, FALSE, GTCY_ACTIVE, 1])
IF play2control=2 THEN Gt_SetGadgetAttrsA(ccycle2,win,NIL,[GA_DISABLED, FALSE, GTCY_ACTIVE, 2])
IF play2control=3 THEN Gt_SetGadgetAttrsA(ccycle2,win,NIL,[GA_DISABLED, FALSE, GTCY_ACTIVE, 3])
IF (play1control=play2control) OR (play1control=play2control) OR (play1control=play3control) OR (play1control=play4control) OR (play2control=play3control) OR (play4control=play2control) OR (play3control=play4control) THEN noterminate3:=5 ELSE noterminate3:=0
CASE "c", "C"
play3control:=play3control+1
IF play3control=4 THEN play3control:=0
IF play3control=0 THEN Gt_SetGadgetAttrsA(ccycle3,win,NIL,[GA_DISABLED, FALSE, GTCY_ACTIVE, 0])
IF play3control=1 THEN Gt_SetGadgetAttrsA(ccycle3,win,NIL,[GA_DISABLED, FALSE, GTCY_ACTIVE, 1])
IF play3control=2 THEN Gt_SetGadgetAttrsA(ccycle3,win,NIL,[GA_DISABLED, FALSE, GTCY_ACTIVE, 2])
IF play3control=3 THEN Gt_SetGadgetAttrsA(ccycle3,win,NIL,[GA_DISABLED, FALSE, GTCY_ACTIVE, 3])
IF (play1control=play2control) OR (play1control=play2control) OR (play1control=play3control) OR (play1control=play4control) OR (play2control=play3control) OR (play4control=play2control) OR (play3control=play4control) THEN noterminate3:=5 ELSE noterminate3:=0
CASE "q", "Q"
play4control:=play4control+1
IF play4control=4 THEN play4control:=0
IF play4control=0 THEN Gt_SetGadgetAttrsA(ccycle4,win,NIL,[GA_DISABLED, FALSE, GTCY_ACTIVE, 0])
IF play4control=1 THEN Gt_SetGadgetAttrsA(ccycle4,win,NIL,[GA_DISABLED, FALSE, GTCY_ACTIVE, 1])
IF play4control=2 THEN Gt_SetGadgetAttrsA(ccycle4,win,NIL,[GA_DISABLED, FALSE, GTCY_ACTIVE, 2])
IF play4control=3 THEN Gt_SetGadgetAttrsA(ccycle4,win,NIL,[GA_DISABLED, FALSE, GTCY_ACTIVE, 3])
IF (play1control=play2control) OR (play1control=play2control) OR (play1control=play3control) OR (play1control=play4control) OR (play2control=play3control) OR (play4control=play2control) OR (play3control=play4control) THEN noterminate3:=5 ELSE noterminate3:=0
mywin4:=OpenW(71,35,178,137,IDCMP_VANILLAKEY OR IDCMP_REFRESHWINDOW OR BUTTONIDCMP OR IDCMP_GADGETDOWN OR IDCMP_GADGETUP OR SLIDERIDCMP, WFLG_ACTIVATE OR WFLG_DRAGBAR, 'Colour Control', screen, $F, glist4, NIL)
SetTopaz(8)
Gt_RefreshWindow(mywin4, NIL)
setlines()
drawcols()
process_window_events4(mywin4, my_gads4)
EXCEPT DO
IF mywin4 THEN CloseW(mywin4)
FreeGadgets(glist4)
ReThrow()
unghostgadgets()
ENDPROC
PROC createAllGadgets4(glistptr:PTR TO LONG, vi, topborder,
mywin5:=OpenW(77,53,164,113,IDCMP_VANILLAKEY OR IDCMP_REFRESHWINDOW OR BUTTONIDCMP OR IDCMP_GADGETDOWN OR IDCMP_GADGETUP, WFLG_ACTIVATE OR WFLG_DRAGBAR, 'Score Card', screen, $F, glist5, NIL)
SetTopaz(8)
blocked5:=FALSE
FOR lineloop5:=1 TO 4
Line(33,gad5y1+1,33,gad5y1+10,1)
Line(32,gad5y1+1,32,gad5y1+11,1)
Line(32,gad5y1,110,gad5y1,1)
Line(110,gad5y1+1,110,gad5y1+10,2)
Line(111,gad5y1,111,gad5y1+10,2)
Line(33,gad5y1+11,111,gad5y1+11,2)
Line(117,gad5y1+1,117,gad5y1+10,1)
Line(116,gad5y1+1,116,gad5y1+11,1)
Line(116,gad5y1,154,gad5y1,1)
Line(154,gad5y1+1,154,gad5y1+10,2)
Line(155,gad5y1,155,gad5y1+10,2)
Line(117,gad5y1+11,155,gad5y1+11,2)
gad5y1:=gad5y1+16
ENDFOR
Colour(2)
TextF(7,22,'Pos')
TextF(48,22,'Player')
TextF(121,22,'Wins')
Colour(1)
TextF(11,36,'1:')
TextF(11,52,'2:')
TextF(11,68,'3:')
TextF(11,84,'4:')
Colour(3)
REPEAT
IF posloop=play4 THEN (rank4:=posfound) AND (posfound:=posfound-1)
IF posloop=play3 THEN (rank3:=posfound) AND (posfound:=posfound-1)
IF posloop=play2 THEN (rank2:=posfound) AND (posfound:=posfound-1)
IF posloop=play1 THEN (rank1:=posfound) AND (posfound:=posfound-1)
posloop:=posloop+1
UNTIL (posfound=0) OR (posloop=1000)
IF posloop=1000 THEN (blocked5:=TRUE) AND (Gt_SetGadgetAttrsA(ebutton, mywin5, NIL, [GA_DISABLED, TRUE, NIL]))
IF StrLen(name1)=7 THEN p1x1:=45
IF StrLen(name2)=7 THEN p2x1:=45
IF StrLen(name3)=7 THEN p3x1:=45
IF StrLen(name4)=7 THEN p4x1:=45
IF StrLen(name1)=6 THEN p1x1:=49
IF StrLen(name2)=6 THEN p2x1:=49
IF StrLen(name3)=6 THEN p3x1:=49
IF StrLen(name4)=6 THEN p4x1:=49
IF StrLen(name1)=5 THEN p1x1:=53
IF StrLen(name2)=5 THEN p2x1:=53
IF StrLen(name3)=5 THEN p3x1:=53
IF StrLen(name4)=5 THEN p4x1:=53
IF StrLen(name1)=4 THEN p1x1:=57
IF StrLen(name2)=4 THEN p2x1:=57
IF StrLen(name3)=4 THEN p3x1:=57
IF StrLen(name4)=4 THEN p4x1:=57
IF StrLen(name1)=3 THEN p1x1:=61
IF StrLen(name2)=3 THEN p2x1:=61
IF StrLen(name3)=3 THEN p3x1:=61
IF StrLen(name4)=3 THEN p4x1:=61
IF StrLen(name1)=2 THEN p1x1:=65
IF StrLen(name2)=2 THEN p2x1:=65
IF StrLen(name3)=2 THEN p3x1:=65
IF StrLen(name4)=2 THEN p4x1:=65
IF StrLen(name1)=1 THEN p1x1:=69
IF StrLen(name2)=1 THEN p2x1:=69
IF StrLen(name3)=1 THEN p3x1:=69
IF StrLen(name4)=1 THEN p4x1:=69
IF play1<10 THEN p1x2:=132
IF play2<10 THEN p2x2:=132
IF play3<10 THEN p3x2:=132
IF play4<10 THEN p4x2:=132
IF (play1>9) AND (play1<100) THEN p1x2:=128
IF (play2>9) AND (play2<100) THEN p2x2:=128
IF (play3>9) AND (play3<100) THEN p3x2:=128
IF (play4>9) AND (play4<100) THEN p4x2:=128
IF (play1>99) THEN p1x2:=124
IF (play2>99) THEN p2x2:=124
IF (play3>99) THEN p3x2:=124
IF (play4>99) THEN p4x2:=124
IF rank1=1
TextF(p1x1,36,name1)
StringF(play,'\d',play1)
TextF(p1x2,36,play)
ENDIF
IF rank2=1
TextF(p2x1,36,name2)
StringF(play,'\d',play2)
TextF(p2x2,36,play)
ENDIF
IF rank3=1
TextF(p3x1,36,name3)
StringF(play,'\d',play3)
TextF(p3x2,36,play)
ENDIF
IF rank4=1
TextF(p4x1,36,name4)
StringF(play,'\d',play4)
TextF(p4x2,36,play)
ENDIF
IF rank1=2
TextF(p1x1,52,name1)
StringF(play,'\d',play1)
TextF(p1x2,52,play)
ENDIF
IF rank2=2
TextF(p2x1,52,name2)
StringF(play,'\d',play2)
TextF(p2x2,52,play)
ENDIF
IF rank3=2
TextF(p3x1,52,name3)
StringF(play,'\d',play3)
TextF(p3x2,52,play)
ENDIF
IF rank4=2
TextF(p4x1,52,name4)
StringF(play,'\d',play4)
TextF(p4x2,52,play)
ENDIF
IF rank1=3
TextF(p1x1,68,name1)
StringF(play,'\d',play1)
TextF(p1x2,68,play)
ENDIF
IF rank2=3
TextF(p2x1,68,name2)
StringF(play,'\d',play2)
TextF(p2x2,68,play)
ENDIF
IF rank3=3
TextF(p3x1,68,name3)
StringF(play,'\d',play3)
TextF(p3x2,68,play)
ENDIF
IF rank4=3
TextF(p4x1,68,name4)
StringF(play,'\d',play4)
TextF(p4x2,68,play)
ENDIF
IF rank1=4
TextF(p1x1,84,name1)
StringF(play,'\d',play1)
TextF(p1x2,84,play)
ENDIF
IF rank2=4
TextF(p2x1,84,name2)
StringF(play,'\d',play2)
TextF(p2x2,84,play)
ENDIF
IF rank3=4
TextF(p3x1,84,name3)
StringF(play,'\d',play3)
TextF(p3x2,84,play)
ENDIF
IF rank4=4
TextF(p4x1,84,name4)
StringF(play,'\d',play4)
TextF(p4x2,84,play)
ENDIF
process_window_events5(mywin5, my_gads5)
EXCEPT DO
IF mywin5 THEN CloseW(mywin5)
FreeGadgets(glist5)
ReThrow()
ENDPROC
PROC createAllGadgets5(glistptr:PTR TO LONG, vi, topborder,
IF StrCmp(temp,'1',1) THEN obstacles:=TRUE ELSE obstacles:=FALSE
MidStr(temp,m,7,1)
IF StrCmp(temp,'1',1) THEN wrap:=TRUE ELSE wrap:=FALSE
MidStr(temp,m,8,1)
IF StrCmp(temp,'1',1) THEN blocks:=TRUE ELSE blocks:=FALSE
m:=m+10
IF StrCmp(m,'Player:',7)=FALSE THEN JUMP ioerr
IF Not (StrLen(m)=11) THEN JUMP ioerr
MidStr(temp,m,7,1)
play1control:=Val(temp, NIL)
MidStr(temp,m,8,1)
play2control:=Val(temp, NIL)
MidStr(temp,m,9,1)
play3control:=Val(temp, NIL)
MidStr(temp,m,10,1)
play4control:=Val(temp, NIL)
IF (play1control=play2control) OR (play1control=play2control) OR (play1control=play3control) OR (play1control=play4control) OR (play2control=play3control) OR (play4control=play2control) OR (play3control=play4control) THEN JUMP ioerr
m:=m+12
IF StrCmp(m,'No:',3)=FALSE THEN JUMP ioerr
IF Not (StrLen(m)=4) THEN JUMP ioerr
MidStr(temp,m,3,1)
playerno:=Val(temp, NIL)
counta:=0
countb:=0
m:=m+5
IF StrCmp(m,'Col1:',5)=FALSE THEN JUMP ioerr
m:=m+5
counta:=InStr(m,',')
MidStr(temppal,m,0,counta)
col1r:=Val(temppal, NIL)
m:=m+counta+1
counta:=InStr(m,',')
MidStr(temppal,m,0,counta)
col1g:=Val(temppal, NIL)
m:=m+counta+1
counta:=StrLen(m)
MidStr(temppal,m,0,counta)
col1b:=Val(temppal, NIL)
m:=m+counta+1
IF StrCmp(m,'Col2:',5)=FALSE THEN JUMP ioerr
m:=m+5
counta:=InStr(m,',')
MidStr(temppal,m,0,counta)
col2r:=Val(temppal, NIL)
m:=m+counta+1
counta:=InStr(m,',')
MidStr(temppal,m,0,counta)
col2g:=Val(temppal, NIL)
m:=m+counta+1
counta:=StrLen(m)
MidStr(temppal,m,0,counta)
col2b:=Val(temppal, NIL)
m:=m+counta+1
IF StrCmp(m,'Col3:',5)=FALSE THEN JUMP ioerr
m:=m+5
counta:=InStr(m,',')
MidStr(temppal,m,0,counta)
col3r:=Val(temppal, NIL)
m:=m+counta+1
counta:=InStr(m,',')
MidStr(temppal,m,0,counta)
col3g:=Val(temppal, NIL)
m:=m+counta+1
counta:=StrLen(m)
MidStr(temppal,m,0,counta)
col3b:=Val(temppal, NIL)
m:=m+counta+1
IF StrCmp(m,'Col4:',5)=FALSE THEN JUMP ioerr
m:=m+5
counta:=InStr(m,',')
MidStr(temppal,m,0,counta)
col4r:=Val(temppal, NIL)
m:=m+counta+1
counta:=InStr(m,',')
MidStr(temppal,m,0,counta)
col4g:=Val(temppal, NIL)
m:=m+counta+1
counta:=StrLen(m)
MidStr(temppal,m,0,counta)
col4b:=Val(temppal, NIL)
m:=m+counta+1
IF StrCmp(m,'Name1:',6)=FALSE THEN JUMP ioerr
lenplea:=StrLen(m)
IF lenplea>13 THEN JUMP ioerr
MidStr(tname1,m,6,lenplea)
m:=m+lenplea+1
IF StrCmp(m,'Name2:',6)=FALSE THEN JUMP ioerr
lenplea:=StrLen(m)
IF lenplea>13 THEN JUMP ioerr
MidStr(tname2,m,6,lenplea)
m:=m+lenplea+1
IF StrCmp(m,'Name3:',6)=FALSE THEN JUMP ioerr
lenplea:=StrLen(m)
IF lenplea>13 THEN JUMP ioerr
MidStr(tname3,m,6,lenplea)
m:=m+lenplea+1
IF StrCmp(m,'Name4:',6)=FALSE THEN JUMP ioerr
lenplea:=StrLen(m)
IF lenplea>13 THEN JUMP ioerr
MidStr(tname4,m,6,lenplea)
m:=m+lenplea+1
IF StrCmp(m,'Swoo:',5)=FALSE THEN JUMP ioerr
MidStr(temp,m,5,1)
IF StrCmp(temp,'1',ALL)=TRUE THEN swooshy:=TRUE ELSE swooshy:=FALSE